Method and system for providing data accessibility and interlinks between a user and a storage device

ABSTRACT

A new approach to the manipulation of data access of storage that complies with certain mapping interlinks between front-end servers and back-end storage data pool and which lessens the complexity of the interlinks and improves the efficiency of the data accessibility is disclosed. The method allocates multiple user hardware devices and the logical units to a correspondent designated sub-zone so that there is at least one sub-zone associated with two or more logical units, wherein the logical units reside inside the storage hardware or network. The method establishes the data access interlinks within the same sub-zone between users and logical units. A system that substantiates the method is also disclosed. The method and the system together comprise a new storage scheme.

CLAIM OF PRIORITY

The present applications claims priority pursuant to 35 U.S.C. § 119 to patent application number 200810215564.1 filed on Sep. 9, 2008 in the People's Republic of China and is incorporated by reference herein in its entirety.

BACKGROUND OF THE INVENTION

The present invention relates generally to computers and communications and more particularly to a software method and system providing data interlinks between front end users and back end storage pools.

It is quite common that hardware of various models from different vendors and manufactures are present in the same storage network due to the diversified storage market and technology. This heterogeneousness makes the administration and management of the storage network very complex. Access conflicts and resource competition among the front-end users is thus becoming inevitable.

To solve these problems, the prior art provides generally a virtualization technique and introduces a virtual engine at the storage end to manage all front-end users. With reference to FIG. 1, the front end users are connected to the virtual engine and the virtual engine manages the disk arrays inside the storage hardware. The virtual engine comprises logical units and a unified virtual layer. The unified virtual layer is the abstraction of the disk arrays, which reflects the access requests from front end users to the disk arrays; the logical units face toward the front-end users and examine the “legitimacy” of the access request from the front-end users. The logical units share such access requests so that the goal of reducing access conflicts and resource competition can be accomplished.

A storage pool or hardware device is thus abstracted into multiple logical units. One storage hardware device can link to several front-end users, while one front-end user may access multiple storage hardware devices. Such inter-access or interlinks between the storage hardware devices and front-end users will become more and more complex when the number of storage hardware devices and front-end users becomes bigger and bigger. The system administrator has to maintain, manually, each interlink between the back-end storage and the front-end user or server. The burden will eventually become too heavy to bear and human error or mistake will unfortunately become inevitable.

SUMMARY OF THE INVENTION

In accordance with one aspect of the invention, a method of manipulating the data access to storage that complies with certain mapping interlinks between front-end users or servers and back-end storage data pool is provided. The method lessens the complexity of the interlinks and improves the efficiency of the data accessibility. The method allocates multiple user servers to correspondent designated sub-zones, allocates multiple logical units to the correspondent designated sub-zones so that there is at least one sub-zone that is associated with, equal to or more than, two logical units; in which the logical units reside inside the storage hardware; and establishes the data access interlinks between users and logical units in the same sub-zone.

In accordance with another aspect of the invention, a method of accessing the logical units of the storage hardware and storage network includes inquiring and checking the existence among the sub-zones of IDs of the user hardware devices when access is requested by the user hardware devices, when the ID is found in a certain sub-zone, retrieving the ID of an associated logical units from the Request to Access, and if the ID of the associated logical unit is found, granting the Request to Access and allowing the data access to proceed, else, denying the Request to Access.

In accordance with another aspect of the invention, a system that manipulates the data access interlinks includes a zoning module to establish multiple sub-zones, a sub-zoning module to allocate multiple user hardware devices to the sub-zones allocated and to allocate multiple logical units to each sub-zone in such manner that each sub-zone will host or accommodate at least two logical units wherein the logical units reside inside the storage hardware and network, and an interlinks module to establish the accessibility interlinks between the user servers and the logical units belonging to the same sub-zone.

In accordance with another aspect of the invention, a system that controls the logical units of the storage hardware and network includes a user interface module to receive the request for access from user hardware devices, an inquiring module to inquire as to the presence or existence of the correspondent user ID when requested by the user hardware devices and to retrieve the logical unit ID from the Request to Access by the users in the same sub-zones if the user ID is found in that sub-zone and a control module to grant the accessibility to the users if the correspondent logical unit ID is found to exist, or to deny the access otherwise.

In accordance with another aspect of the invention, a storage system includes the storage hardware and network with associated logical units to handle the request to access, the user hardware devices to initiate the request to access, and the framework of sub-zoning that determines the existence of user IDs among the sub-zones and retrieves the logical units' ID that is allocated or associated with the user ID in the same sub-zone when the user ID is found valid, and forwards the Request to Access to the correspondent storage hardware and network if the logical units' ID is retrieved successfully and otherwise denies the Request to Access.

In accordance with another aspect of the invention, multiple user/servers and the correspondent/affiliated logical units are allocated into designated sub-zones and accessibility between the users and the logical units within the same sub-zones is established while the accessibility from the user/servers to the logical units outside the same sub-zone is prohibited.

In accordance with the invention, the complex interlinks between the user and the logical units are narrowed and limited to each sub-zone so that human effort and error are greatly reduced. In addition the users only inquire the logical units within the sub-zone to which the affiliated users/servers are allocated to instead of a “global” inquiring. For better control purposes, the rights of user access to the logical units are permitted only to those that belong to the same sub-zones.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic representation of a prior art system;

FIG. 2 is a high level flow chart of a method in accordance with the invention;

FIGS. 3A and 3B are detailed flow charts of the method of FIG. 2;

FIG. 4 is a high level flow chart of another method in accordance with the invention;

FIGS. 5A and 5B are detailed flow charts of the method of FIG. 4;

FIG. 6 is a flow chart of yet another method in accordance with the invention;

FIG. 7 is a schematic representation of a sub-zoning system in accordance with the invention; and

FIG. 8 is a schematic representation of a storage system in accordance with the invention.

DETAILED DESCRIPTION OF THE INVENTION

The method in accordance with the invention comprises the following steps: allocating multiple user hardware devices and logical units to pre-designated sub-zones, establishing the accessibility policy among the users and logical units so that the implementation of the accessibility among the users and logical units becomes simplified significantly. The user hardware device can access the logical units whose accessibility is designated by the system administrator. The user hardware device in accordance with the invention includes front-end users and servers.

With reference to FIG. 2, a method in accordance with the invention includes dividing/establishing a plurality of sub-zones. It is a good practice that the number of resulting sub-zones is less than the number of user hardware devices and logical units. In a step 201 multiple users are allocated to the pre-designated/established sub-zones. Multiple users can be allocated to one sub-zone, while an individual user can also be allocated to multiple sub-zones. The user ID and its access authorization will be reserved in the allocated sub-zone. A user will not belong to any sub-zone if it does not have the authorization to access any logical units.

In a step 202 multiple logical units are allocated to the pre-designated/established sub-zones in such way that there is at least one sub-zone that is allocated to at least two logical units. The logical units reside inside the storage hardware/pool. The ID of the logical units is also reserved in the designated sub-zones. If an individual logical unit is inaccessible to any users, the storage hardware becomes its private hardware. This logical unit will not belong to any sub-zone. In a step 203 accessibility interlinks are established between the users and logical units inside each sub-zone.

The order of execution of steps 201 and 202 is not rigorous and they can proceed at the same time. The policies to allocate the users and logical units into sub-zones can be varied: such as randomly or evenly or according to the properties of the applications. These properties include the application classification, throughput/bandwidth, occupied resource, etc.

With reference to FIGS. 3A and 3B, there is shown a method in which the policy of allocating users and logical elements is in accordance with the properties of the application. In a step 301, multiple sub-zones are divided/established. In a step 302, correspondent application properties in each sub-zone are recorded and in a step 303, users' IDs are obtained. Application classifications are retrieved from the users' IDs in a step 304 and in a step 305, users with the same application properties are allocated to correspondent sub-zones, recording users' IDs and their authorizations on read and write accessibility.

In a step 306, IDs of the logical units are obtained and in a step 307 corresponding application classifications are retrieved from the IDs of the logical units. Logical units with the same application properties are allocated to correspondent sub-zones and their IDs recorded in a step 308.

In accordance with the invention, the execution order of steps 303-305 and 306-308 is not rigorous.

The method shown in FIGS. 3A and 3B depicts the accessibility interlinks between the users and logical units within each sub-zone. Each user can access the logical units within the same sub-zone. For instance, assume there are sub-zone 1 and 2 and that users 1 and 2 belong to sub-zone 1, and that users 2 and 3 belong to sub-zone 2. Further assume that logical units 1 and 2 belong to sub-zone 1, while logical unit 3 belongs to sub-zone 2. Table 1 illustrates the accessibility interlinks between the users and the logical units:

TABLE 1 User 1 User 2 User 3 Logical Accessible Accessible Inaccessible unit 1 (read) (write) Logical Accessible Accessible Inaccessible unit 2 (read) (write) Logical Inaccessible Accessible Accessible unit 3 (read) (write)

In accordance with the invention, in order to add more accessible interlinks between the users and logical units, one can easily do so by adding the user ID into the sub-zone having the correspondent logical units allocated, or by adding the logical units' ID into the sub-zones to which the users are allocated. A tedious manual one-to-one interlinking is thus avoided. The same is true when abolishing the interlinks between the users and logical units. This can be easily accomplished by removing either the user or logical ID from the correspondent sub-zones. Therefore, the effort and complexity of these tasks are greatly diminished.

With reference to FIG. 4, a method of accessing storage includes inquiring the users, ID in the sub-zones following the user hardware device's access request in a step 401. In a step 402, following finding the users' ID, the logical unit's ID from the sub-zone(s) that carries the user ID is inquired. A determination is made in a step 403 whether a logical unit ID is found. If a logical unit ID is found, then in a step 404 the access request is accepted and passed to the logical units concerned. If a logical unit ID is not found, then in a step 405, the access request is denied and the user is notified of the denial.

A more rigorous administration is also possible as depicted in FIGS. 5A and 5B. In a step 501 an access request is received from the user and inquiring the user ID in the sub-zones is performed. In a step 502 a determination is made whether the user ID is found in any sub-zone. If the user ID is found, then in a step 503 inquiring the logical units' IDs is performed from the sub-zones that carry the user ID. If the user ID is not found, then in a step 507, the access request is denied and the user notified. In a step 504, a determination is made whether the logical unit's ID is found. If the logical unit's ID is not found, the method proceeds to step 507, otherwise, the method proceeds to a step 505 in which a determination is made whether the user has access to the sub-zone based upon the access request. If the accessibility is validated, then the access request is validated in a step 506, otherwise step 507 is executed and the access request is denied.

From step 501, the receivers of the access request are the sub-zones, and what each sub-zone needs to do is to check the user and logical unit ID locally; if the ID is not present, the access request will be denied. Therefore, the inquiring process becomes “ID-checking” among the sub-zones. The amount of inquiring, in terms of data and time will be much less than that of prior art schemes. In other words, the administration layer of the sub-zones is now playing the role in receiving the access requests from the users. This layer inquires the user and logical units ID among the sub-zones and denies the request if the IDs are not found. The layer will examine the accessibility of the users as the next step if the ID is found. Both the amount of inquiring and the degree of technical complexity are reduced by the methods of the invention: firstly finding out the sub-zones carrying the user ID, then checking the logical units ID among those sub-zones.

The logical unit ID that comes with the user's access request can be recorded in the user hardware, or acquired from other hardware devices. Depicted in FIG. 6, a method for a user hardware device to obtain the logical units ID includes a step 601 in which the access request is received from the user. In a step 602, the user ID is inquired in the sub-zones. A determination is made in a step 603 whether the user ID is found. If the user ID is found, then in a step 604, the logical unit ID is fed back to the user from the sub-zones that carry the user ID indicating that the user has accessibility to the logical units. If the user ID is not found, then in a step 605, the access request is denied.

With reference to FIG. 7, a system 700 in which the sub-zoning approach is implemented is shown. The system 700 includes a zone creating module 701, sub-zoning module 702, an interlink module 708, a user interface module 703, an inquiring module 704, a control module 705, and a logical interface module 706. Module 701, 702 and 708 are used in sub-zoning and accessibility processing, that is, the creation of sub-zones, adding and deleting of user and logical unit ID, etc. Modules 703, 706, 704 and 705 implement the access to the storage and the inquire/response to the logical units.

Zone creating module 701 creates multiple sub-zones.

Sub-zoning module 702 allocates multiple users to each pre-designated sub-zone, as well as the multiple logical units in such way that there is at least one sub-zone that is allocated to at least two logical units, the logical units residing in the storage hardware.

Interlink module 708 implements (creates and abolishes) the accessibility interlinks between the users and logical units within the same sub-zones, that is, adding or deleting the user and logical unit IDs, setting up the accessibility authorization, etc.

User interface module 703 interacts with the user hardware devices and receives the access requests from the users;

Logical interface module 706 interacts with the logical interfaces of the storage hardware devices.

Inquiring module 704 inquires the user ID on access request and further inquires the logical units ID from the sub-zones that carry the user ID.

Control module 705 determines and validates the accessibility of the users to the storage when the logical units ID is found. If the accessibility is validated, it instructs the Logical interface module 706 to pass the access request to the storage hardware, otherwise, it instructs the User interface module 703 to feedback “access denying” signal to the users.

The sub-zoning system 700 may also include Storage module 707 which records the user and logical units ID, and accessibility and the application classification of the sub-zones. Storage module 707 may record the above information by the bitmap format.

The sub-zoning system 700 takes variety of forms: It can be a sub-zone itself; it can be formed by the sub-zone administration layer (modules 701, 702, 703, 704, 705 and 706) and a sub-zone (module 707); and it can also be formed by the administration layer (modules 701, 702, 703 and 704) and the sub-zone (modules 707, 705 and 706).

With reference to FIG. 8, a storage system is implemented based on the sub-zoning approach and includes storage hardware 801, user hardware 802 and the sub-zoning system 700. Storage hardware 801, including the logical units 8011, is used to process access requests and maintain/keep the data. User hardware 802 is operable to initiate and inquire the access request as well as to receive feedback. The sub-zoning system or scheme 700 operates as the administrative body for the sub-zoning and access requests. Upon request to access from a user hardware device, it inquires the user ID among the sub-zones and then the correspondent logical units ID from the sub-zones if the user ID is found in them. It then passes the access request to the Logical unit 8011 inside the Storage hardware 801 if the logical unit ID is found and validated, otherwise, denies that request to access.

The methods of the invention may be implemented in software and can be stored into floppy, hard disk, CD/DVD and flash, etc storage media.

The methods and system of the invention allocate multiple user hardware devices and logical units to the correspondent sub-zones and establish certain accessibility interlinks between the users and logical units while prohibiting the interlinks/accessibility across different sub-zones. This simplifies the interlinks between the logical units and users significantly, from the prior art large scale one-to-one involved relationships to much smaller scale sub-zoned or sub-grouped ones. Therefore, the process of manipulating and handling the complex interlinks between the users and logical units becomes a lot easier and quicker, and more importantly, much less error prone. The policies of sub-zoning, specifically the sub-zoning according to the application classification approach, have many advantages such as data and resource sharing and de-duplication. The methods and system of the invention also presents an approach to access to the logical units inside the storage hardware in the event of sub-zoning, such that the inquiring to logical units is made within the sub-zones that carry the user ID, not all logical units. The inquiring effort and data amount are thus much less than those of prior art schemes. The access control is also much easier since the users don't have accessibility to those logical units that are outside the same sub-zones.

Other developers in the same industry sector can do many alternations and modifications to the disclosed methods and system as long as the basic principles and concepts are observed. Therefore, the inventor claims and reserves the right to any alteration and modification to the described methods and system. 

1. A method for controlling user access to data stored in a storage data pool, said method comprising: associating multiple user hardware devices to a sub-zone; corresponding multiple logical storage units of said storage data pool to said sub-zone; and providing data access to each of said multiple logical storage units by one of said multiple user hardware devices.
 2. The method as recited in claim 1 wherein providing further includes establishing data access interlinks between said multiple user hardware devices and a subset of said multiple logical storage units.
 3. The method as recited in claim 1 wherein providing further includes providing data access to each of said multiple logical storage units by all of said multiple hardware devices.
 4. A method for controlling user access to data stored in a storage data pool, said method comprising: associating a plurality of user hardware devices to a plurality of sub-zones; corresponding a plurality of multiple logical storage units of said storage data pool to plurality of sub-zones; and providing data access interlink between sub-groups of said plurality of user hardware devices and sub-portions of said plurality of logical storage units associated with common sub-zones of said plurality of sub-zones.
 5. The method as recited in claim 4 wherein associating further includes associating said sub-portion of said plurality of logical storage units to a sub-part of said plurality of sub-zones.
 6. The method as recited in claim 4 wherein associating further includes associating said sub-group of said plurality of user hardware devices to one of said plurality of sub-zones, said sub-group consisting essentially of one of said plurality of user hardware devices.
 7. The method as recited in claim 4 wherein associating further includes associating said sub-group of said plurality of user hardware devices to one of plurality of sub-zones, with the user hardware devices of said sub-group corresponding to a common application property.
 8. The method as recited in claim 4 wherein associating further includes associating said sub-part of said plurality of logical storage units to one of said plurality of sub-zones, with the logical storage units of said sub-part corresponding to a common application property.
 9. The method as recited in claim 4 wherein associating further includes associating said plurality of logical storage units to said plurality of sub-zones with each of said plurality of sub-zones being associated with a same number of said plurality of logical storage units as the remaining sub-zones of said plurality of sub-zones.
 10. The method as recited in claim 4 wherein associating further includes associating said plurality of logical storage units to said plurality of sub-zones with each of said plurality of sub-zones being associated with a different number of said plurality of logical storage units as the remaining sub-zones of said plurality of sub-zones.
 11. The method as recited in claim 4 further including dynamically changing association amongst said plurality of user hardware devices, said plurality of logical storage units and said plurality of sub-zones.
 12. The method as recited in claim 4 further including dynamically changing association of said plurality of logical user hardware devices and said plurality of logical storage units with respect to said plurality of sub-zones so that upon one said plurality of logical storage units, associated with one of said plurality of sub-zones, being made inaccessible to all of the user hardware devices associated with said one of said plurality of sub-zones, said one of said plurality of logic storage units is dissociated from said one of said plurality of sub-zones.
 13. A method for determining whether to grant access to data on a data storage system having a plurality of logical storage units, said method comprising: associating a sub-portion of said plurality of logical storage units with one of a plurality of sub-zones; receiving, from a user hardware device, a request for access to one of said plurality of logical storage units, said request including user ID data for said user hardware device; determining whether said user ID data is associated with any of said plurality of sub-zones; and in response to determine that said ID is associated with any of said plurality of sub-zones, ascertaining whether said one of said plurality of sub-zones is included in said any of said plurality of sub-zones.
 14. The method as recited in claim 13 wherein ascertaining further includes identifying whether unit ID data of said one of said plurality of logical storage units includes said user ID data.
 15. The method as recited in claim 13 wherein ascertaining further includes identifying whether unit ID data of said one of said plurality of logical storage units includes said user ID data and further including granting access to said one of said plurality of logical storage units upon determining that said unit ID data includes said user ID data.
 16. The method as recited in claim 13 further including transmitting a denial of access to said user hardware device upon determining that said user ID data is not associated with any of said plurality of sub-zones.
 17. The method as recited in claim 13 wherein ascertaining further includes providing, to said user hardware device, unit ID data of all logical storage units associated with said one of said plurality of sub-zones and providing units to the user hardware devices allocated to the sub-zone.
 18. A system for controlling access to data stored in a storage data pool by a plurality of user hardware devices, said system comprising: a plurality of logical storage units formed from said data storage pool; zoning modules for establishing amongst said plurality of logical storage units and said plurality of user hardware devices, a plurality of sub-zones associated with said plurality of logical storage units and said plurality of user hardware devices, with one of said plurality of sub-zones being associated with multiple logical storage units; and an interlinks module for establishing accessibility interlinks between said plurality of user hardware devices and said plurality of logical storage units corresponding to a common sub-zone amongst said plurality of sub-zones.
 19. A system for controlling logical storage units of a storage hardware and network comprising: a user interface module for receiving an access request from a user hardware device; an inquiring module for inquiring into the presence of a correspondent user ID when requested by the user hardware device and to retrieve a logical unit ID from the access request by users of the same sub-zone if the user ID is found in the same sub-zone; and a control module for granting access to the user if the corresponding logical unit ID is found, else to deny access.
 20. A storage system comprising: a storage hardware and network in which a plurality of logical storage units reside and operable to handle an access request; a user hardware device operable to initiate the access request; and a sub-zoning system for inquiring into the existence of a user ID among a plurality of sub-zones and to retrieve logical unit IDs allocated in a same sub-zone when the user ID is found to be valid, and to forward the access request to the storage hardware and network if the logical unit IDs are retrieved successfully, else denying the access request. 